package com.duguo.dynamicmvc.model.statusmessage;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.duguo.dynamicmvc.view.forward.ForwardRequestWrapper;

public class StatusMessageHelper {

	public static void initStatusMessage(HttpServletRequest request,
			StatusMessageModel model) {
		if (request instanceof ForwardRequestWrapper) {
			StatusMessageModel statusMessageModel = (StatusMessageModel) (((ForwardRequestWrapper) request).getModel());
			if (statusMessageModel != null){
				StatusMessage statusMessage=statusMessageModel.getStatusMessage();
				if (statusMessage != null) {
					model.setStatusMessage(statusMessage);
				}
			}
		} else {
			HttpSession httpSession = request.getSession(false);
			if (httpSession != null) {
				StatusMessage statusMessage = (StatusMessage) httpSession
						.getAttribute(StatusMessageSupportModelImpl.STATUS_MESSAGE_KEY);
				if (statusMessage != null) {
					httpSession
							.removeAttribute(StatusMessageSupportModelImpl.STATUS_MESSAGE_KEY);
					model.setStatusMessage(statusMessage);
				}
			}
		}
	}

	public static void saveStatusMessage(HttpServletRequest request,
			StatusMessageModel model) {
		Object statusMessage = model.getStatusMessage();
		if (statusMessage != null) {
			request.getSession(true).setAttribute(
					StatusMessageSupportModelImpl.STATUS_MESSAGE_KEY,
					statusMessage);
		}
	}
}
